﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Facade.Interface;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Logic.Linq;
using Crosland.Automotriz.Seguridad.Business;
using Crosland.Automotriz.Seguridad.Entity;
using Crosland.Automotriz.Entidad;


namespace Crosland.Automotriz.Facade.Facade
{
    public class FacadeCompensacionVehiculo:iFacadeCompensacionVehiculo
    {

        public IEnumerable<object> ListarBancos()
        {
            clsT_Mae_BancoLogic bancoLogic = new clsT_Mae_BancoLogic();
            return bancoLogic.ListarBancos();
        }


        public IEnumerable<object> ListarCtaCorriente(int idBanco)
        {
            clsT_Mae_Banco_CuentaLogic bancoCtaLogic =new clsT_Mae_Banco_CuentaLogic();
            return bancoCtaLogic.ListarCtaCorriente(idBanco);
        }


        public IEnumerable<object> ListarClaseFactura()
        {
            clsTd_Clase_FacturaLogic claseFacturaLogic = new clsTd_Clase_FacturaLogic();
            return claseFacturaLogic.ListarClaseFactura();
        }

        public IEnumerable<object> ListarMonedas()
        {
            clsT_Mae_MonedaLogic monedaLogic = new clsT_Mae_MonedaLogic();
            return monedaLogic.ListarMonedas();
        }


        public IEnumerable<object> ListarClientes(string nombre)
        {
            clsTD_ClienteBL clienteLogic = new clsTD_ClienteBL();
            return clienteLogic.ListarClientes(nombre);
        }


        public IEnumerable<Object> ListarUsuariosFacturadores()
        {
            clsUsuarioLogic usuarioLogic = new clsUsuarioLogic();
            return usuarioLogic.ListarUsuariosFacturadores();
        }


        public bool GuardarCaja(T_TES_CAJA entity,string glosa)
        {
            clsT_Tes_CajaLogic cajaLogic = new clsT_Tes_CajaLogic();
            return cajaLogic.GuardarCaja(entity,glosa);
        }

        //public int ModificarCaja(int ID_OPERACION_CAJA, int ID_BANCO_CUENTA, int ID_TIPO_DOCUMENTO, String NUM_OPERACION, DateTime FEC_OPERACION, int ID_MONEDA, Decimal IMP_MONTO, String ID_USUARIO)
        //{
        //    clsT_Tes_CajaLogic cajaLogic = new clsT_Tes_CajaLogic();
        //    return cajaLogic.ModificarCaja(ID_OPERACION_CAJA, ID_BANCO_CUENTA, ID_TIPO_DOCUMENTO, NUM_OPERACION, FEC_OPERACION, ID_MONEDA, IMP_MONTO, ID_USUARIO);

        //}

        public List<T_MAE_MONEDA> MonedaXCta(int idCta)
        {
            clsT_Mae_MonedaLogic monedaLogic = new clsT_Mae_MonedaLogic();
            return monedaLogic.MonedaXCta(idCta);
        }


        public IEnumerable<Object> BuscarDepositos(int anio, int mes, string usuario, int moneda,int estado)
        {
            clsT_Tes_CajaLogic cajaLogic = new clsT_Tes_CajaLogic();
            return cajaLogic.BuscarDepositos(anio, mes, usuario, moneda,estado);
        }


        public IEnumerable<object> SeleccionDepositos(List<int> id)
        {
            clsT_Tes_CajaLogic cajaLogic = new clsT_Tes_CajaLogic();
            return cajaLogic.SeleccionDepositos(id);
        }

        public IEnumerable<object> FacturasXCliente(int idCliente, int anio, int mes,int idOfiVta,int estado)
        {
            clsTH_VentaBL ventaLogic = new clsTH_VentaBL();
            return ventaLogic.FacturasXCliente(idCliente,anio,mes,idOfiVta,estado);
        }

        public IEnumerable<object> ListarOficinaVenta()
        {
            clsTH_VentaBL ventaLogic = new clsTH_VentaBL();
            return ventaLogic.ListarOficinaVenta();
        }


        public bool GuardarOperacionCab(T_CON_OPERACION_CAB entity)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.GuardarOpreacionCab(entity);
        }

        public int UltimoIdGenerado()
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.UltimoIdGenerado();

        }

        public void GuardarOperacionDet(T_CON_OPERACION_DET entity)
        {
            clsT_Con_Operacion_DetLogic logicDet = new clsT_Con_Operacion_DetLogic();
            logicDet.GuardarOperacionDet(entity);
        }

        public List<T_TES_CAJA> BuscarDepositoGetById(int id)
        {
            clsT_Tes_CajaLogic cajaLogic = new clsT_Tes_CajaLogic();
            return cajaLogic.BuscarDepositoGetById(id);
        }

        public List<TD_Facturas_Compensadas> ListarFacturasCompensadas(int idOperacionCaja)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.ListarFacturasCompensadas(idOperacionCaja);
        }


        public void GuardarOperacionTran(T_CON_OPERACION_TRAN entity)
        {
            clsT_Con_Operacion_TranLogic logicTran = new clsT_Con_Operacion_TranLogic();
            logicTran.GuardarOperacionTran(entity);
        }


        public IEnumerable<object> ListarRepresentantes()
        {
            clsVW_Representante_LegalLogic Logic = new clsVW_Representante_LegalLogic();
            return Logic.ListarRepresentantes();
        }


        public List<TD_Facturas_Impresion> ListarFacturasImpresion(int anio_operacion, int mes_operacion, int indicador, int anio_facturacion)
        {
            clsVW_Representante_LegalLogic Logic = new clsVW_Representante_LegalLogic();
            return Logic.ListarFacturasImpresion(anio_operacion, mes_operacion, indicador, anio_facturacion);
        }

        public List<TD_Facturas_Impresion> ListarFacturasImpresionFEC_IMPRESION(int anio, int mes, int indicador)
        {
            clsVW_Representante_LegalLogic Logic = new clsVW_Representante_LegalLogic();
            return Logic.ListarFacturasImpresionFEC_IMPRESION(anio, mes, indicador);
        }


        public void GuardarImpresionCMPCT(T_VEN_CARTAS_VEH_IMPRESION entity)
        {
            clsT_Ven_Cartas_Veh_ImpresionLogic logic = new clsT_Ven_Cartas_Veh_ImpresionLogic();
            logic.GuardarImpresionCMPCT(entity);
        }


        public List<TD_FACTURA_CONSULTA> ListarConsultaFactura(int nrofactura)
        {
            clsVW_Representante_LegalLogic Logic = new clsVW_Representante_LegalLogic();
            return Logic.ListarConsultaFactura(nrofactura);
        }


        public decimal TipoCambio(DateTime FecOperacion)
        {
            clsT_Tes_CajaLogic cajaLogic = new clsT_Tes_CajaLogic();
            return cajaLogic.TipoCambio(FecOperacion);
        }



        public void GuardarLogicaTran(int idOperacion)
        {
            clsT_Con_Operacion_TranLogic logicTran = new clsT_Con_Operacion_TranLogic();
            logicTran.GuardarLogicaTran(idOperacion);
        }

        public decimal VerificarFacturasCompensadas(int nroFactura)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.VerificarFacturasCompensadas(nroFactura);
        }


        public List<TD_OPERACION_DEPOSITO_MAE> ListarDatosOperacionMae(int idOperacionCaja)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.ListarDatosOperacionMae(idOperacionCaja);
        }


        public List<TD_Facturas_Compensadas> ListarDatosOperacionDet(int idOperacion)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.ListarDatosOperacionDet(idOperacion);
        }

        public bool ExtornarOperacion(int idOperacion)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.ExtornarOperacion(idOperacion);
        }



        public List<TD_Facturas_Compensadas> FacturasExtornadas(int idOperacion)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.FacturasExtornadas(idOperacion);
        }


        public string DesClienteCompensacion(int idOperacion)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.DesClienteCompensacion(idOperacion);
        }


        public List<Td_Usuario_Correo> ListarUsuariosCorreo(int id)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            return logicCab.ListarUsuariosCorreo(id);
        }


        public void SaveTipoCambio(DateTime fecha, decimal impVenta, decimal impCompra)
        {
            clsT_Con_Operacion_CabLogic logicCab = new clsT_Con_Operacion_CabLogic();
            logicCab.SaveTipoCambio(fecha,impVenta,impCompra);
        }



    }
}
